/* Copyright 2018 JDCLOUD.COM

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http:#www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

镜像仓库认证信息
关于镜像仓库认证信息的相关接口

OpenAPI spec version: v1
Contact: 

NOTE: This class is auto generated by the jdcloud code generator program.
*/


#ifndef NcApiModel_h
#define NcApiModel_h
#import <JDCloudOCSDKCore/JDCloudOCSDKCore.h>
#import <JDCloudOCSDKCommon/JDCloudOCSDKCommon.h>
#import <JDCloudOCSDKNc/NcModel.h>


@interface NcDescribeQuotaRequest:JDCloudRequest

/// resourceType - 资源类型，支持 [container, pod, secret]
   /// 
@property (strong,nonatomic,nonnull)  NSString*  resourceType;
-(id) initWithRegion:(NSString *)regionId
resourceType:(NSString*)resourceType;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
resourceType:(NSString*)resourceType;

@end

@interface NcStartContainerRequest:JDCloudRequest

/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containerId:(NSString*)containerId;

@end

@interface NcDeleteContainerRequest:JDCloudRequest

/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containerId:(NSString*)containerId;

@end

@interface NcAssociateElasticIpRequest:JDCloudRequest

/// 弹性IP ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
containerId:(NSString*)containerId;

@end

@interface NcDescribeContainerRequest:JDCloudRequest

/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containerId:(NSString*)containerId;

@end

@interface NcCreateContainersResult : NSObject
/// ContainerIds
 @property (strong,nonatomic,nonnull)  NSArray<NSString*>*  containerIds;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithContainerIds:(NSArray<NSString*>*) containerIds;
@end

@interface NcDisassociateElasticIpRequest:JDCloudRequest

/// 弹性IP ID
@property (strong,nonatomic,nonnull)  NSString*  elasticIpId;
/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
elasticIpId:(NSString*)elasticIpId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
elasticIpId:(NSString*)elasticIpId
containerId:(NSString*)containerId;

@end

@interface NcModifyContainerAttributeRequest:JDCloudRequest

/// 容器名称
@property (strong,nonatomic,nonnull)  NSString*  name;
/// 容器描述；和description必须要指定一个
@property (strong,nonatomic,nonnull)  NSString*  descriptionValue;
/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
descriptionValue:(NSString*)descriptionValue
containerId:(NSString*)containerId;

@end

@interface NcGetLogsRequest:JDCloudRequest

/// 返回日志文件中倒数 tailLines 行，如不指定，默认从容器启动时或 sinceSeconds 指定的时间读取。
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  tailLines;
/// 返回相对于当前时间之前sinceSeconds之内的日志。
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  sinceSeconds;
/// 限制返回的日志文件内容字节数，取值范围 [1-4]KB，最大 4KB.
   /// 
@property (strong,nonatomic,nonnull)  NSNumber*  limitBytes;
/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
tailLines:(NSNumber*)tailLines
sinceSeconds:(NSNumber*)sinceSeconds
limitBytes:(NSNumber*)limitBytes
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
tailLines:(NSNumber*)tailLines
sinceSeconds:(NSNumber*)sinceSeconds
limitBytes:(NSNumber*)limitBytes
containerId:(NSString*)containerId;

@end

@interface NcStopContainerRequest:JDCloudRequest

/// Container ID
@property (strong,nonatomic,nonnull)  NSString*  containerId;
-(id) initWithRegion:(NSString *)regionId
containerId:(NSString*)containerId;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containerId:(NSString*)containerId;

@end

@interface NcDeleteSecretRequest:JDCloudRequest

/// Secret Name
@property (strong,nonatomic,nonnull)  NSString*  name;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name;

@end

@interface NcCreateSecretResult : NSObject
/// SecretName
 @property (strong,nonatomic,nonnull)  NSString*  secretName;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecretName:(NSString*) secretName;
@end

@interface NcDescribeSecretRequest:JDCloudRequest

/// Secret Name
@property (strong,nonatomic,nonnull)  NSString*  name;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name;

@end

@interface NcDescribeQuotaResult : NSObject
/// Quota
 @property (strong,nonatomic,nonnull)  NcQuota*  quota;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithQuota:(NcQuota*) quota;
@end

@interface NcDescribeQuotaResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDescribeQuotaResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDescribeQuotaResult*) result;
@end

@interface NcDescribeContainersResult : NSObject
/// Containers
 @property (strong,nonatomic,nonnull)  NSArray<Container*>*  containers;
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithContainers:(NSArray<Container*>*) containers

    totalCount:(NSNumber*)totalCount;
@end

@interface NcStartContainerResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcStartContainerResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcStartContainerResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcStartContainerResult*) result;
@end

@interface NcDescribeContainersRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为20；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// containerId - 实例ID，精确匹配，支持多个
   /// privateIpAddress - 主网卡IP地址，模糊匹配，支持单个
   /// az - 可用区，精确匹配，支持多个
   /// vpcId - 私有网络ID，精确匹配，支持多个
   /// status - 容器状态，精确匹配，支持多个
   /// name - 实例名称，模糊匹配，支持单个
   /// subnetId - 镜像ID，模糊匹配，支持单个
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface NcDescribeContainerResult : NSObject
/// Container
 @property (strong,nonatomic,nonnull)  Container*  container;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithContainer:(Container*) container;
@end

@interface NcDeleteContainerResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcStopContainerResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcDeleteContainerResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDeleteContainerResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDeleteContainerResult*) result;
@end

@interface NcDisassociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcDescribeContainerResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDescribeContainerResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDescribeContainerResult*) result;
@end

@interface NcStopContainerResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcStopContainerResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcStopContainerResult*) result;
@end

@interface NcAssociateElasticIpResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcAssociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcAssociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcAssociateElasticIpResult*) result;
@end

@interface NcModifyContainerAttributeResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcCreateContainersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcCreateContainersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcCreateContainersResult*) result;
@end

@interface NcGetLogsResult : NSObject
/// Logs
 @property (strong,nonatomic,nonnull)  Logs*  logs;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithLogs:(Logs*) logs;
@end

@interface NcCreateContainersRequest:JDCloudRequest

/// 创建容器规格
@property (strong,nonatomic,nonnull)  ContainerSpec*  containerSpec;
/// 购买实例数量；取值范围：[1,100]
@property (strong,nonatomic,nonnull)  NSNumber*  maxCount;
-(id) initWithRegion:(NSString *)regionId
containerSpec:(ContainerSpec*)containerSpec
maxCount:(NSNumber*)maxCount;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
containerSpec:(ContainerSpec*)containerSpec
maxCount:(NSNumber*)maxCount;

@end

@interface NcGetLogsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcGetLogsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcGetLogsResult*) result;
@end

@interface NcModifyContainerAttributeResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcModifyContainerAttributeResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcModifyContainerAttributeResult*) result;
@end

@interface NcDisassociateElasticIpResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDisassociateElasticIpResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDisassociateElasticIpResult*) result;
@end

@interface NcDescribeContainersResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDescribeContainersResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDescribeContainersResult*) result;
@end

@interface NcCreateSecretRequest:JDCloudRequest

/// 机密数据名称，不能重复
   /// 
@property (strong,nonatomic,nonnull)  NSString*  name;
/// 机密数据的类型，目前仅支持：docker-registry 类型，用来和docker registry认证的类型。
   /// 
@property (strong,nonatomic,nonnull)  NSString*  secretType;
/// 机密的数据。&lt;br&gt;
   /// key 的有效字符包括字母、数字、-、_和.； &lt;br&gt;
   /// value 是 Base64 编码的字符串，不能包含换行符（在 linux 下使用 base64 -w 0选项），每个value长度上限为4KB，整个data的长度不能超过256KB; &lt;br&gt;
   /// 必须包含server、username、password 字段，email 字段是可选的。&lt;br&gt;
   /// 
@property (strong,nonatomic,nonnull)  DockerRegistryData*  data;
-(id) initWithRegion:(NSString *)regionId
name:(NSString*)name
secretType:(NSString*)secretType
data:(DockerRegistryData*)data;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
name:(NSString*)name
secretType:(NSString*)secretType
data:(DockerRegistryData*)data;

@end

@interface NcDescribeSecretsResult : NSObject
/// Secrets
 @property (strong,nonatomic,nonnull)  NSArray<Secret*>*  secrets;
/// TotalCount
 @property (strong,nonatomic,nonnull)  NSNumber*  totalCount;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecrets:(NSArray<Secret*>*) secrets

    totalCount:(NSNumber*)totalCount;
@end

@interface NcDescribeSecretsResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDescribeSecretsResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDescribeSecretsResult*) result;
@end

@interface NcDeleteSecretResult : NSObject

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
@end

@interface NcDeleteSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDeleteSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDeleteSecretResult*) result;
@end

@interface NcCreateSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcCreateSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcCreateSecretResult*) result;
@end

@interface NcDescribeSecretResult : NSObject
/// Secret
 @property (strong,nonatomic,nonnull)  Secret*  secret;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;
-(id) initWithSecret:(Secret*) secret;
@end

@interface NcDescribeSecretsRequest:JDCloudRequest

/// 页码；默认为1
@property (strong,nonatomic,nonnull)  NSNumber*  pageNumber;
/// 分页大小；默认为20；取值范围[10, 100]
@property (strong,nonatomic,nonnull)  NSNumber*  pageSize;
/// name - secret名称，支持模糊搜索
   /// 
@property (strong,nonatomic,nonnull)  NSArray<Filter*>*  filters;
-(id) initWithRegion:(NSString *)regionId
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

-(id) initWithRegion:(NSString *)regionId
             version:(NSString *)version
pageNumber:(NSNumber*)pageNumber
pageSize:(NSNumber*)pageSize
filters:(NSArray<Filter*>*)filters;

@end

@interface NcDescribeSecretResponse : NSObject

@property NSString* requestId;

@property ServiceError* error;

@property NcDescribeSecretResult* result;

-(NSMutableDictionary*) dictionary;

-(id) initWithDic:(NSDictionary*)dictionary;

-(id) initWithRequestId:(NSString*) requestId
        error:(ServiceError*) error
        result:(NcDescribeSecretResult*) result;
@end

#endif /* NcApiModel_h */
